package com.voicechat.firstmet.utils;

import android.os.Parcel;
import android.os.Parcelable;
import android.util.Base64;

/**
 * 创建时间：2017/06/05
 * 创建者: taoyong
 * 模块描述：Parcelable持久化储存工具类
 */
public class ParcelableUtils {
    private static final String TAG = "ParcelableUtils";

    private ParcelableUtils() {
    }

    /**
     * Parcelable对象转换为byte[]类型<br/>
     * 再转换为String类型
     *
     * @param parceable Parcelable对象
     * @return String类型
     */
    public static String marshall(Parcelable parceable) {
        Parcel parcel = Parcel.obtain();
        parcel.setDataPosition(0);
        parceable.writeToParcel(parcel, 0);
        byte[] bytes = parcel.marshall();
        parcel.recycle();
        return Base64.encodeToString(bytes, 0);
    }

    /**
     * String类型换为byte[]类型转<br/>
     * 再转换为Parcelable对象
     *
     * @param str String类型
     * @return Parcel类型
     */
    public static Parcel unmarshall(String str) {
        byte[] bytes = Base64.decode(str, 0);
        Parcel parcel = Parcel.obtain();
        parcel.unmarshall(bytes, 0, bytes.length);
        parcel.setDataPosition(0);
        return parcel;
    }
}